iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
0
Elastic Stack on Cloud

Elastic 30天自我修行系列 第 13

上傳 JSONL 範例檔案

  • 分享至 

  • xImage
  •  

這一次在 Discover 卡住蠻久的,詳情下述

這次下載的數據資料,請點選下載
https://download.elastic.co/demos/kibana/gettingstarted/logs.jsonl.gz

先解壓縮後,使用 head 指令印出前10行看看

https://ithelp.ithome.com.tw/upload/images/20200913/20130033ZnbH5nXb60.png

我們可以發現 "{"index":{"_index":"logstash-2015.05.18","_type":"log"}}" 這一段,這表示在這個 JSON 檔案中,已經將一些資料格式都定義好了;等一下上傳上去的資料,就直接擁有 index 名稱。所以等一下在使用 R 進行上傳時,就可以略過 index 名稱的指定。

使用 R 上傳JSON檔案的程式碼如下, 嗯 就是這麼簡單

library(elastic)

# Connect OK!

x <- connect(
  host = "333.asia-east1.gcp.elastic-cloud.com",
  path = "",
  user = "elastic",
  pwd = "3336",
  port = 9243,
  transport_schema = "https"
)

logs0913_3 <-  "/mnt/c/Users/excel/Downloads/logs.jsonl"
docs_bulk(x, logs0913_3  )

當然,如此還是不熟悉這樣的上傳模式,我們一樣可以透過 elastic co 的官網進行上傳。
https://ithelp.ithome.com.tw/upload/images/20200913/20130033OvqNw3rdEX.png

因為我們的資格之中有日期時間格式,所以 elastic 還會很細心的提醒你,要選擇那個欄位做為時間主要的依據。對於系統維護人員來說,這是非常重要的一個選項。因為如果發生當機等異常狀況,你第一個想要知道的,一定是「什麼時候發生的?」「發生幾次?」「造成什麼影響?」。當然如果系統一切正常,你還是會在乎,在那個時段的負荷相對較高。

https://ithelp.ithome.com.tw/upload/images/20200913/20130033LZHSB4h0YB.png

然後再讓我們切換回 "Discover" 介面中,我們選擇這次上傳的 index pattern進行資料探索。
這時候會發現,什麼東西都沒有出現!!!

https://ithelp.ithome.com.tw/upload/images/20200913/20130033p783OoMBcS.png

所以首先要將時間切換為最近 6 年"Last 6 Year",這是因為範例資料的時區是2015年5月18日,而系統預設的最近15分鐘的資料。我就是在此處卡住很久。
https://ithelp.ithome.com.tw/upload/images/20200913/20130033DWItNRbK4h.png

切換後,就可以發現已經有資料明細出現了。
https://ithelp.ithome.com.tw/upload/images/20200913/20130033SxPKQciPMY.png

這時候可以再來試試 KQL ;例如我們可能會很有興趣,這些網頁瀏灠log中與jpg相關且response code是200的有那些呢 ?

extension:jpg and response:200

https://ithelp.ithome.com.tw/upload/images/20200913/20130033xBMTt4jC35.png

我們可以再進一步增加我們的時間限制範圍;例如這些 log 是來自於 CN 而且日期是早於2015年5月19的呢?

extension:jpg and response:200 and  geo.dest:CN and  @timestamp < "2015-05-19"

https://ithelp.ithome.com.tw/upload/images/20200913/20130033UHlZs73d4X.png

此處我們可以發現在 timestamp 的限制式中,我們直接使用 ISO 標準格式就可以。

總之,在這個範例中,最麻煩的是一開始要先把日期選對,否則怎麼下 KQL 都是無效的。
所以也許一個更好的學習方式,是透過 sample data 中的 "kibana_sample_data_logs" 進行學習,因為在那個虛擬資料中,會一直有當日的資料匯進來~


上一篇
上傳莎士比亞作品 + KQL(Kibana Query Language)#1
下一篇
使用範例資料學習 Kibana
系列文
Elastic 30天自我修行31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言